home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / EmailViewer / FULL / EmailViewer.jar / t.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-12-23  |  33.4 KB  |  1,554 lines

  1. import java.io.ByteArrayInputStream;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStreamWriter;
  8. import java.io.Writer;
  9. import java.util.EmptyStackException;
  10. import java.util.Enumeration;
  11. import java.util.Hashtable;
  12. import java.util.Stack;
  13. import java.util.Vector;
  14. import javax.microedition.io.ConnectionNotFoundException;
  15. import javax.microedition.io.Connector;
  16. import javax.microedition.io.HttpConnection;
  17. import javax.microedition.lcdui.Font;
  18. import javax.microedition.lcdui.Image;
  19. import javax.microedition.rms.InvalidRecordIDException;
  20. import javax.microedition.rms.RecordStore;
  21.  
  22. // $FF: renamed from: t
  23. class class_0 implements Runnable {
  24.    // $FF: renamed from: z java.lang.String
  25.    private String field_0;
  26.    // $FF: renamed from: p java.lang.String
  27.    private String field_1;
  28.    // $FF: renamed from: A boolean
  29.    private boolean field_2;
  30.    // $FF: renamed from: r int
  31.    private int field_3;
  32.    // $FF: renamed from: o int
  33.    private int field_4;
  34.    // $FF: renamed from: j m
  35.    private m field_5;
  36.    // $FF: renamed from: l java.lang.String
  37.    private String field_6;
  38.    // $FF: renamed from: c java.lang.String
  39.    private String field_7;
  40.    // $FF: renamed from: f java.lang.String
  41.    private String field_8;
  42.    // $FF: renamed from: v q[]
  43.    private q[] field_9;
  44.    // $FF: renamed from: e java.lang.String
  45.    private String field_10;
  46.    // $FF: renamed from: k java.lang.String
  47.    private String field_11;
  48.    // $FF: renamed from: x boolean
  49.    private boolean field_12;
  50.    // $FF: renamed from: y boolean
  51.    private volatile boolean field_13 = false;
  52.    // $FF: renamed from: t int
  53.    private int field_14 = 0;
  54.    // $FF: renamed from: q int
  55.    private int field_15 = 0;
  56.    // $FF: renamed from: w int
  57.    private int field_16 = 1;
  58.    // $FF: renamed from: a java.util.Vector
  59.    private Vector field_17;
  60.    // $FF: renamed from: B java.util.Vector
  61.    private Vector field_18;
  62.    // $FF: renamed from: d java.util.Vector
  63.    private Vector field_19;
  64.    // $FF: renamed from: n java.util.Hashtable
  65.    private Hashtable field_20;
  66.    // $FF: renamed from: i int
  67.    private int field_21 = 0;
  68.    // $FF: renamed from: h int
  69.    private int field_22 = 0;
  70.    // $FF: renamed from: s java.util.Stack
  71.    private Stack field_23;
  72.    // $FF: renamed from: m javax.microedition.lcdui.Font
  73.    private Font field_24;
  74.    // $FF: renamed from: u int
  75.    private int field_25 = 0;
  76.    // $FF: renamed from: b int
  77.    private int field_26;
  78.    // $FF: renamed from: g byte
  79.    private byte field_27 = 0;
  80.  
  81.    class_0(m var1, String var2, String var3, String var4, q[] var5, String var6, String var7, boolean var8, Vector var9, Vector var10, Vector var11, Hashtable var12) {
  82.       this.field_5 = var1;
  83.       this.field_6 = var2;
  84.       this.field_7 = var3;
  85.       this.field_8 = var4;
  86.       this.field_9 = var5;
  87.       this.field_10 = var6;
  88.       this.field_11 = var7;
  89.       this.field_12 = var8;
  90.       this.field_17 = var9;
  91.       this.field_18 = var10;
  92.       this.field_19 = var11;
  93.       this.field_20 = var12;
  94.       this.field_0 = var1.b;
  95.       this.field_1 = var1.U;
  96.       this.field_2 = var1.ac;
  97.       this.field_3 = var1.af;
  98.       this.field_4 = var1.H;
  99.       this.field_24 = var1.al;
  100.       this.field_26 = this.field_24.getHeight();
  101.    }
  102.  
  103.    // $FF: renamed from: d () void
  104.    void method_0() {
  105.       this.field_13 = true;
  106.    }
  107.  
  108.    // $FF: renamed from: a (java.io.Writer) void
  109.    private void method_1(Writer var1) throws IOException {
  110.       var1.write("<req vid=\"18\" ver=\"1.8.4E\">");
  111.       var1.write("<uri");
  112.       if (this.field_11 != null) {
  113.          var1.write(" ref=\"" + this.method_20(this.field_11, true) + '"');
  114.       }
  115.  
  116.       if (this.field_12) {
  117.          var1.write(" noCache=\"1\"");
  118.       }
  119.  
  120.       var1.write('>' + this.method_20(this.field_6, false) + "</uri>" + "<display width=\"" + this.field_3 + "\" height=\"" + this.field_4 + "\" images=\"" + this.field_2 + "\" cookies=\"" + (short)this.field_5.a + "\" isColor=\"" + this.field_5.M + "\" numColors=\"" + this.field_5.J);
  121.       if (this.field_5.w > 0) {
  122.          var1.write("\" l=\"" + this.field_5.w);
  123.       }
  124.  
  125.       var1.write("\"/>");
  126.       if (this.field_9 != null) {
  127.          var1.write("<f");
  128.          if (this.field_7 != null) {
  129.             var1.write(" method=\"" + this.method_20(this.field_7, true) + '"');
  130.             this.field_7 = null;
  131.          }
  132.  
  133.          if (this.field_8 != null) {
  134.             var1.write(" enctype=\"" + this.method_20(this.field_8, true) + '"');
  135.             this.field_8 = null;
  136.          }
  137.  
  138.          if (this.field_10 != null) {
  139.             var1.write(" charset=\"" + this.method_20(this.field_10, true) + '"');
  140.          }
  141.  
  142.          var1.write(62);
  143.  
  144.          for(int var2 = 0; var2 < this.field_9.length; ++var2) {
  145.             var1.write("<nv n=\"");
  146.             var1.write(this.method_20(this.field_9[var2].a, true));
  147.             var1.write("\" v=\"");
  148.             var1.write(this.method_20(this.field_9[var2].b, true));
  149.             var1.write("\"/>");
  150.          }
  151.  
  152.          this.field_9 = null;
  153.          var1.write("</f>");
  154.       }
  155.  
  156.       var1.write("</req>");
  157.    }
  158.  
  159.    // $FF: renamed from: b (java.lang.String) java.lang.String
  160.    static String method_2(String var0) {
  161.       int var1 = var0.indexOf(37);
  162.       if (var1 < 0) {
  163.          return var0;
  164.       } else {
  165.          StringBuffer var2 = new StringBuffer();
  166.  
  167.          for(int var3 = 0; var3 < var0.length(); ++var3) {
  168.             char var4 = var0.charAt(var3);
  169.             if (var4 == '%' && var3 + 2 < var0.length()) {
  170.                try {
  171.                   var2.append((char)Integer.parseInt(var0.substring(var3 + 1, var3 + 3), 16));
  172.                   var3 += 2;
  173.                   continue;
  174.                } catch (NumberFormatException var6) {
  175.                }
  176.             }
  177.  
  178.             var2.append(var4);
  179.          }
  180.  
  181.          return var2.toString();
  182.       }
  183.    }
  184.  
  185.    // $FF: renamed from: a (java.lang.String) java.lang.String
  186.    private String method_3(String var1) {
  187.       int var2 = var1.indexOf("JSESSIONID=");
  188.       if (var2 == -1) {
  189.          return null;
  190.       } else {
  191.          int var3 = var1.indexOf(59, var2);
  192.          return var3 == -1 ? var1.substring(var2 + 11) : var1.substring(var2 + 11, var3);
  193.       }
  194.    }
  195.  
  196.    // $FF: renamed from: e (java.lang.String) boolean
  197.    private boolean method_4(String var1) {
  198.       return var1.toLowerCase().startsWith("https:");
  199.    }
  200.  
  201.    public void run() {
  202.       try {
  203.          HttpConnection var1 = null;
  204.          Object var2 = null;
  205.          OutputStreamWriter var3 = null;
  206.  
  207.          try {
  208.             try {
  209.                String var4 = null;
  210.                int var5 = this.field_6.indexOf(35);
  211.                if (var5 >= 0) {
  212.                   var4 = this.field_6.substring(var5 + 1);
  213.                   this.field_6 = this.field_6.substring(0, var5);
  214.                }
  215.  
  216.                for(int var65 = 0; var65 <= 6; ++var65) {
  217.                   if (var65 == 0) {
  218.                      this.method_8(1, 0, (Throwable)null);
  219.                   }
  220.  
  221.                   boolean var6 = this.method_4(this.field_6);
  222.                   String var7 = var6 ? this.field_5.z : this.field_5.D;
  223.                   if (var7 == null) {
  224.                      throw new IOException((var6 ? "Secure " : "") + "ReqwirelessWeb server not set");
  225.                   }
  226.  
  227.                   int var8 = var7.toLowerCase().startsWith("https:");
  228.  
  229.                   try {
  230.                      var1 = (HttpConnection)Connector.open(var7);
  231.                   } catch (ConnectionNotFoundException var60) {
  232.                      if (var6) {
  233.                         throw new ConnectionNotFoundException("This resource requires a secure (HTTPS) connection, which is not supported by your device.");
  234.                      }
  235.  
  236.                      throw var60;
  237.                   }
  238.  
  239.                   var1.setRequestMethod("POST");
  240.                   if (this.field_5.S) {
  241.                      var1.setRequestProperty("Connection", "close");
  242.                   }
  243.  
  244.                   String var9 = this.field_5.Y;
  245.                   if (var9 != null) {
  246.                      var1.setRequestProperty("Cookie", "JSESSIONID=" + var9);
  247.                   }
  248.  
  249.                   if (var8) {
  250.                      String var10 = this.field_5.aj;
  251.                      if (var10 != null) {
  252.                         var1.setRequestProperty("X-RW-SID", var10);
  253.                      }
  254.                   }
  255.  
  256.                   var1.setRequestProperty("Content-Type", "text/xml");
  257.                   var1.setRequestProperty("Accept", "text/xml, image/png, application/x-reqwirelessweb, application/reqwireless-email");
  258.                   if (this.field_0 != null) {
  259.                      var1.setRequestProperty("User-Agent", this.field_0);
  260.                   }
  261.  
  262.                   if (this.field_1 != null) {
  263.                      var1.setRequestProperty("Accept-Language", this.field_1);
  264.                   }
  265.  
  266.                   String var71 = this.field_5.u;
  267.                   if (var71 != null) {
  268.                      var1.setRequestProperty("X-RW-ClientID", var71);
  269.                   }
  270.  
  271.                   Thread.yield();
  272.                   if (this.field_13) {
  273.                      return;
  274.                   }
  275.  
  276.                   var3 = new OutputStreamWriter(var1.openOutputStream());
  277.                   this.method_1(var3);
  278.                   var3.close();
  279.                   Thread.yield();
  280.                   if (this.field_13) {
  281.                      return;
  282.                   }
  283.  
  284.                   if (var65 == 0) {
  285.                      this.method_8(1, 100, (Throwable)null);
  286.                      this.method_8(2, 0, (Throwable)null);
  287.                   }
  288.  
  289.                   var2 = var1.openInputStream();
  290.                   Thread.yield();
  291.                   if (this.field_13) {
  292.                      return;
  293.                   }
  294.  
  295.                   String var11 = var1.getHeaderField("Set-Cookie");
  296.                   if (var11 != null) {
  297.                      this.field_5.Y = this.method_3(var11);
  298.                   }
  299.  
  300.                   String var12 = var1.getHeaderField("X-RW-ClientID");
  301.                   if (var12 != null) {
  302.                      RecordStore var13 = null;
  303.                      Object var14 = null;
  304.                      DataOutputStream var15 = null;
  305.  
  306.                      try {
  307.                         var13 = RecordStore.openRecordStore("clientID", true);
  308.                         ByteArrayOutputStream var73 = new ByteArrayOutputStream();
  309.                         var15 = new DataOutputStream(var73);
  310.                         var15.writeUTF(var12);
  311.                         var15.flush();
  312.                         byte[] var16 = var73.toByteArray();
  313.  
  314.                         try {
  315.                            var13.setRecord(1, var16, 0, var16.length);
  316.                         } catch (InvalidRecordIDException var57) {
  317.                            var13.addRecord(var16, 0, var16.length);
  318.                         }
  319.  
  320.                         this.field_5.u = var12;
  321.                         if (var12.length() > 0 && var12.charAt(0) == '$') {
  322.                            m.ab = true;
  323.                            EV.w.delete(7);
  324.                         }
  325.                      } catch (Exception var58) {
  326.                      } finally {
  327.                         if (var15 != null) {
  328.                            var15.close();
  329.                         }
  330.  
  331.                         if (var13 != null) {
  332.                            try {
  333.                               var13.closeRecordStore();
  334.                            } catch (Exception var56) {
  335.                            }
  336.                         }
  337.  
  338.                      }
  339.                   }
  340.  
  341.                   if (var8) {
  342.                      String var72 = var1.getHeaderField("X-RW-SID");
  343.                      if (var72 != null) {
  344.                         this.field_5.aj = var72;
  345.                      }
  346.                   }
  347.  
  348.                   this.field_6 = var1.getHeaderField("X-RW-Redirect");
  349.                   if (this.field_6 == null) {
  350.                      String var66 = var1.getHeaderField("Content-Location");
  351.                      if (var4 != null) {
  352.                         var66 = var66 + '#' + var4;
  353.                      }
  354.  
  355.                      this.field_5.d(var66);
  356.                      this.method_8(2, 100, (Throwable)null);
  357.                      var7 = var1.getType();
  358.                      if (var7 == null) {
  359.                         throw new IOException("Unexpected server response");
  360.                      }
  361.  
  362.                      var8 = (int)var1.getLength();
  363.                      if (this.field_5.w == 30000) {
  364.                         ByteArrayInputStream var69 = new ByteArrayInputStream(this.method_9((InputStream)var2, var8, -1));
  365.                         ((InputStream)var2).close();
  366.                         var1.close();
  367.                         var2 = var69;
  368.                      }
  369.  
  370.                      if (var7.startsWith("application/x-reqwirelessweb")) {
  371.                         this.method_5((InputStream)var2);
  372.                         if (this.field_16 != 64 || this.field_15 != 100) {
  373.                            this.method_8(64, 100, (Throwable)null);
  374.                         }
  375.                      } else if (var7.startsWith("text/xml")) {
  376.                         this.method_10((InputStream)var2, var8);
  377.                         this.method_8(64, 100, (Throwable)null);
  378.                      } else if (var7.startsWith("image/")) {
  379.                         var4 = null;
  380.                         this.method_8(16, 100, (Throwable)null);
  381.                         this.method_8(64, 0, (Throwable)null);
  382.                         this.method_19((InputStream)var2, var66, var8, true);
  383.                         this.method_8(64, 100, (Throwable)null);
  384.                      } else {
  385.                         var4 = null;
  386.                         f var70 = this.field_5.n();
  387.                         if (var70 == null) {
  388.                            throw new IOException("Unexpected server response");
  389.                         }
  390.  
  391.                         var70.a(var7, (InputStream)var2, var8);
  392.                      }
  393.  
  394.                      Thread.yield();
  395.                      if (this.field_13) {
  396.                         return;
  397.                      }
  398.  
  399.                      if (var4 != null) {
  400.                         this.field_5.a(method_2(var4));
  401.                      }
  402.  
  403.                      return;
  404.                   }
  405.  
  406.                   if (var65 == 1) {
  407.                      this.method_8(2, 50, (Throwable)null);
  408.                   }
  409.  
  410.                   ((InputStream)var2).close();
  411.                   var1.close();
  412.                }
  413.  
  414.                throw new RuntimeException("Exceeded maximum number of redirects");
  415.             } catch (OutOfMemoryError var61) {
  416.                this.field_0 = null;
  417.                this.field_1 = null;
  418.                this.field_6 = null;
  419.                this.field_10 = null;
  420.                this.field_11 = null;
  421.                System.gc();
  422.                this.method_8(this.field_16, this.field_15, var61);
  423.             } catch (Exception var62) {
  424.                Thread.yield();
  425.                this.method_8(this.field_16, this.field_15, var62);
  426.             }
  427.  
  428.             return;
  429.          } finally {
  430.             try {
  431.                if (var2 != null) {
  432.                   ((InputStream)var2).close();
  433.                }
  434.  
  435.                if (var3 != null) {
  436.                   var3.close();
  437.                }
  438.  
  439.                if (var1 != null) {
  440.                   var1.close();
  441.                }
  442.             } catch (IOException var55) {
  443.             }
  444.  
  445.             this.field_5.repaint(0, 0, this.field_3, this.field_4);
  446.          }
  447.       } catch (OutOfMemoryError var64) {
  448.          if (!this.field_13) {
  449.             this.field_5.p.setString("Low memory, page truncated");
  450.             this.field_5.c.setCurrent(this.field_5.p, this.field_5);
  451.          }
  452.       }
  453.  
  454.    }
  455.  
  456.    // $FF: renamed from: b (java.io.InputStream) void
  457.    private void method_5(InputStream var1) throws IOException {
  458.       while(this.method_7(var1)) {
  459.          int var2 = -1;
  460.          String var3 = null;
  461.          String var4 = null;
  462.  
  463.          while(true) {
  464.             String var5 = this.method_6(var1);
  465.             Thread.yield();
  466.             if (this.field_13) {
  467.                return;
  468.             }
  469.  
  470.             int var6 = var5.indexOf(58);
  471.             if (var6 <= 0) {
  472.                if (var4 != null) {
  473.                   if (var4.startsWith("image/")) {
  474.                      this.method_19(var1, var3, var2, false);
  475.                      if (this.field_14 > 0) {
  476.                         this.method_8(64, this.field_5.i.size() * 100 / this.field_14, (Throwable)null);
  477.                      }
  478.                   } else if (var4.startsWith("text/xml")) {
  479.                      this.method_10(new aa(var1, var2), var2);
  480.                      this.method_8(64, this.field_14 == 0 ? 100 : 0, (Throwable)null);
  481.                   }
  482.                }
  483.  
  484.                Thread.yield();
  485.                if (this.field_13) {
  486.                   return;
  487.                }
  488.  
  489.                if (var1.read() != -1) {
  490.                   break;
  491.                }
  492.  
  493.                return;
  494.             }
  495.  
  496.             String var7 = var5.substring(0, var6);
  497.             String var8 = var5.substring(var6 + 1).trim();
  498.             if (var7.equals("Content-Type")) {
  499.                var4 = var8;
  500.             } else if (var7.equals("Content-Length")) {
  501.                var2 = Integer.parseInt(var8);
  502.             } else if (var7.equals("Content-Location")) {
  503.                var3 = var8;
  504.             } else if (var7.equals("X-Images")) {
  505.                this.field_14 = Integer.parseInt(var8);
  506.             }
  507.          }
  508.       }
  509.  
  510.    }
  511.  
  512.    // $FF: renamed from: c (java.io.InputStream) java.lang.String
  513.    private String method_6(InputStream var1) throws IOException {
  514.       StringBuffer var2 = new StringBuffer();
  515.  
  516.       while(true) {
  517.          int var3 = var1.read();
  518.          if (this.field_13 || var3 == -1 || var3 == 10) {
  519.             return var2.toString();
  520.          }
  521.  
  522.          var2.append((char)var3);
  523.       }
  524.    }
  525.  
  526.    // $FF: renamed from: a (java.io.InputStream) boolean
  527.    private boolean method_7(InputStream var1) throws IOException {
  528.       while(true) {
  529.          int var2 = var1.read();
  530.          if (!this.field_13 && var2 != -1) {
  531.             if (var2 != 10) {
  532.                continue;
  533.             }
  534.  
  535.             return true;
  536.          }
  537.  
  538.          return false;
  539.       }
  540.    }
  541.  
  542.    // $FF: renamed from: a (int, int, java.lang.Throwable) void
  543.    private void method_8(int var1, int var2, Throwable var3) {
  544.       if (!this.field_13) {
  545.          String var4 = null;
  546.          switch (var1) {
  547.             case 1:
  548.                var4 = "Contacting server";
  549.                break;
  550.             case 2:
  551.                var4 = "Waiting for reply";
  552.                break;
  553.             case 16:
  554.                var4 = "Loading text";
  555.                break;
  556.             case 64:
  557.                if (var2 == 100) {
  558.                   var4 = "Done loading";
  559.                } else {
  560.                   var4 = "Loading images";
  561.                }
  562.          }
  563.  
  564.          this.field_5.a(var4, var2, var3);
  565.          this.field_16 = var1;
  566.          n var5 = this.field_5.b();
  567.          if (var5 != null && (var2 != this.field_15 || var2 == 100 || var3 != null || var1 == 1)) {
  568.             var5.a(var1, var2, var3);
  569.             this.field_15 = var2;
  570.          }
  571.  
  572.       }
  573.    }
  574.  
  575.    // $FF: renamed from: a (java.io.InputStream, int, int) byte[]
  576.    private byte[] method_9(InputStream var1, int var2, int var3) throws IOException {
  577.       byte[] var4 = new byte[var2];
  578.       int var6 = 0;
  579.  
  580.       while(var6 < var2) {
  581.          if (!this.field_5.e) {
  582.             int var7 = var1.read(var4, var6, var2 - var6 < 256 ? var2 - var6 : 256);
  583.             Thread.yield();
  584.             if (this.field_13 || var7 == -1) {
  585.                break;
  586.             }
  587.  
  588.             var6 += var7;
  589.          } else {
  590.             int var5;
  591.             do {
  592.                var5 = var1.read();
  593.                if (var5 == -1) {
  594.                   break;
  595.                }
  596.  
  597.                var4[var6++] = (byte)var5;
  598.             } while(var6 % 128 != 0 && var6 < var2);
  599.  
  600.             Thread.yield();
  601.             if (this.field_13 || var5 == -1) {
  602.                break;
  603.             }
  604.          }
  605.  
  606.          if (var3 >= 0) {
  607.             this.method_8(var3, var6 * 95 / var2, (Throwable)null);
  608.          }
  609.       }
  610.  
  611.       return var4;
  612.    }
  613.  
  614.    // $FF: renamed from: a (java.io.InputStream, int) void
  615.    private void method_10(InputStream var1, int var2) throws IOException {
  616.       if (this.field_14 > 0) {
  617.          this.field_5.i = new Hashtable();
  618.       } else {
  619.          this.field_5.i = null;
  620.       }
  621.  
  622.       try {
  623.          s var3 = new s(new InputStreamReader(var1));
  624.          this.field_23 = new Stack();
  625.          o var4 = null;
  626.          k var5 = null;
  627.          x var6 = null;
  628.          w var7 = null;
  629.          g var8 = null;
  630.          String var9 = null;
  631.          String var10 = null;
  632.          b var11 = null;
  633.          b var12 = null;
  634.          boolean var13 = false;
  635.          boolean var14 = false;
  636.          boolean var15 = false;
  637.          boolean var16 = false;
  638.          int var17 = -1;
  639.          Stack var18 = null;
  640.  
  641.          while(true) {
  642.             Thread.yield();
  643.             if (this.field_13) {
  644.                return;
  645.             }
  646.  
  647.             Object var19 = null;
  648.             switch (var3.e()) {
  649.                case 1:
  650.                   this.method_8(16, 100, (Throwable)null);
  651.                   return;
  652.                case 2:
  653.                   if (var2 > 0) {
  654.                      this.method_8(16, var3.b() * 100 / var2, (Throwable)null);
  655.                   } else {
  656.                      this.method_8(16, 69, (Throwable)null);
  657.                   }
  658.  
  659.                   String var39 = var3.d();
  660.                   if (var14) {
  661.                      if (var39.equals("title")) {
  662.                         var15 = true;
  663.                      }
  664.                   } else if (var39.equals("head")) {
  665.                      var14 = true;
  666.                   } else if (this.method_14(var39)) {
  667.                      if (this.field_21 > 0 || var16) {
  668.                         if (!var39.equals("br")) {
  669.                            this.field_22 += this.field_24.getHeight() / 3;
  670.                         }
  671.  
  672.                         this.method_22(this.field_24.getHeight());
  673.                      }
  674.  
  675.                      if (var39.equals("li")) {
  676.                         StringBuffer var48 = new StringBuffer(2);
  677.                         if (var18 != null) {
  678.                            for(int var61 = 0; var61 < ((Vector)var18).size() && var61 < 4; ++var61) {
  679.                               var48.append(' ').append(' ');
  680.                            }
  681.                         }
  682.  
  683.                         if (var17 > 0) {
  684.                            var48.append(String.valueOf(var17++));
  685.                            var48.append('.');
  686.                         } else {
  687.                            var48.append('*');
  688.                         }
  689.  
  690.                         this.method_18(var48.toString(), (e)null);
  691.                         this.field_21 += this.field_24.charWidth(' ');
  692.                      } else {
  693.                         if (!var39.equals("ul") && !var39.equals("ol")) {
  694.                            if (var39.charAt(0) == 'h') {
  695.                               char var47 = var39.charAt(1);
  696.                               this.field_24 = Font.getFont(this.field_24.getFace(), this.field_5.e ? 0 : 1, var47 != '1' && var47 != '2' ? 0 : 16);
  697.                               break;
  698.                            }
  699.  
  700.                            if (var39.equals("form")) {
  701.                               var6 = new x(var3.b("action"), var3.b("method"), var3.b("enctype"), var3.b("accept-charset"));
  702.                               if (this.field_19 != null) {
  703.                                  this.field_19.addElement(var6);
  704.                               }
  705.                            } else if (var39.equals("pre")) {
  706.                               var16 = true;
  707.                               this.method_11();
  708.                            } else if (var39.equals("address")) {
  709.                               this.method_12();
  710.                            }
  711.                            break;
  712.                         }
  713.  
  714.                         if (var17 >= 0) {
  715.                            if (var18 == null) {
  716.                               var18 = new Stack();
  717.                            }
  718.  
  719.                            var18.push(new Integer(var17));
  720.                         }
  721.  
  722.                         var17 = var39.equals("ol") ? 1 : 0;
  723.                      }
  724.                   } else if (var39.equals("a")) {
  725.                      String var46 = var3.b("href");
  726.                      if (var46 != null) {
  727.                         if (var4 != null) {
  728.                            this.method_13(var4);
  729.                         }
  730.  
  731.                         var4 = new o(var46);
  732.                         this.field_23.push(this.field_24);
  733.                         this.field_24 = Font.getFont(this.field_24.getFace(), this.field_24.getStyle() | 4, this.field_24.getSize());
  734.                         this.field_25 = 255;
  735.                      }
  736.  
  737.                      String var60 = var3.b("name");
  738.                      if (var60 != null && this.field_20 != null) {
  739.                         this.field_20.put(var60, new Integer(this.field_22));
  740.                      }
  741.                   } else if (this.field_2 && var39.equals("img")) {
  742.                      if (this.method_16(var3, (e)(var4 != null ? var4 : var5)) && var3.b("usemap") == null && var4 != null && var3.b("ismap") != null) {
  743.                         var4.a(true);
  744.                      }
  745.                   } else if (var39.equals("b")) {
  746.                      this.field_23.push(this.field_24);
  747.                      if (!this.field_5.e) {
  748.                         this.field_24 = Font.getFont(this.field_24.getFace(), this.field_24.getStyle() | 1, this.field_24.getSize());
  749.                      }
  750.                   } else if (var39.equals("i")) {
  751.                      this.method_12();
  752.                   } else if (var39.equals("input")) {
  753.                      String var45 = var3.b("type");
  754.                      if (var45 != null && !var45.equals("text") && !var45.equals("password")) {
  755.                         if (var45.equals("checkbox")) {
  756.                            String var59 = var3.b("value");
  757.                            if (var59 == null) {
  758.                               var59 = "on";
  759.                            }
  760.  
  761.                            y var70 = new y(var3.b("name"), var59, var3.b("checked") != null);
  762.                            if (var6 != null) {
  763.                               var6.a(var70);
  764.                            }
  765.  
  766.                            this.field_18.addElement(new d(var70, this.field_17.size()));
  767.                            int var77 = this.field_24.getHeight() - 2;
  768.                            if (var77 > this.field_3 - this.field_21) {
  769.                               this.method_22(var77 + 2);
  770.                            } else {
  771.                               this.method_25(var77 + 2);
  772.                            }
  773.  
  774.                            this.field_17.addElement(new v(var70, this.field_21, this.method_23(var77), var77, var77, 0, (Font)null));
  775.                            this.field_21 += var77 + 1;
  776.                            break;
  777.                         }
  778.  
  779.                         if (var45.equals("radio")) {
  780.                            String var58 = var3.b("value");
  781.                            if (var58 == null) {
  782.                               var58 = "on";
  783.                            }
  784.  
  785.                            ae var69 = new ae(var6, var3.b("name"), var58, var3.b("checked") != null);
  786.                            if (var6 != null) {
  787.                               var6.a(var69);
  788.                            }
  789.  
  790.                            this.field_18.addElement(new d(var69, this.field_17.size()));
  791.                            int var76 = this.field_24.getHeight();
  792.                            if (var76 > this.field_3 - this.field_21) {
  793.                               this.method_22(var76 + 2);
  794.                            } else {
  795.                               this.method_25(var76 + 2);
  796.                            }
  797.  
  798.                            this.field_17.addElement(new v(var69, this.field_21, this.method_23(var76), var76, var76, 0, (Font)null));
  799.                            this.field_21 += var76 + 1;
  800.                            break;
  801.                         }
  802.  
  803.                         if (!var45.equals("submit") && !var45.equals("reset")) {
  804.                            if (var45.equals("hidden")) {
  805.                               if (var6 != null) {
  806.                                  String var57 = var3.b("name");
  807.                                  if (var57 != null) {
  808.                                     String var68 = var3.b("value");
  809.                                     if (var68 == null) {
  810.                                        var68 = "";
  811.                                     }
  812.  
  813.                                     var6.a(new w(var57, var68, true));
  814.                                  }
  815.                               }
  816.                               break;
  817.                            }
  818.  
  819.                            if (!var45.equals("image")) {
  820.                               break;
  821.                            }
  822.  
  823.                            String var56 = var3.b("name");
  824.                            if (var56 == null) {
  825.                               var56 = "";
  826.                            }
  827.  
  828.                            if (var56.length() > 0) {
  829.                               var56 = var56 + '.';
  830.                            }
  831.  
  832.                            w var67 = new w(var56 + 'x', (String)null, false);
  833.                            w var75 = new w(var56 + 'y', (String)null, false);
  834.                            if (var6 != null) {
  835.                               var6.a(var67);
  836.                               var6.a(var75);
  837.                            }
  838.  
  839.                            var5 = new k(var6, var67, var75);
  840.                            if (!this.field_2 || !this.method_16(var3, var5)) {
  841.                               String var79 = var3.b("alt");
  842.                               if (var79 != null) {
  843.                                  this.field_21 += this.method_18(var79, var5) + 1;
  844.                               }
  845.                            }
  846.  
  847.                            this.field_18.addElement(var5);
  848.                            var5 = null;
  849.                            break;
  850.                         }
  851.  
  852.                         String var54 = var3.b("value");
  853.                         w var66 = null;
  854.                         if (var45.equals("reset")) {
  855.                            if (var54 == null || var54.length() == 0) {
  856.                               var54 = new String("Reset");
  857.                            }
  858.                         } else {
  859.                            if (var54 == null || var54.length() == 0) {
  860.                               var54 = new String("Submit");
  861.                            }
  862.  
  863.                            var66 = new w(var3.b("name"), var54, false);
  864.                            if (var6 != null) {
  865.                               var6.a(var66);
  866.                            }
  867.                         }
  868.  
  869.                         var54 = ' ' + var54 + ' ';
  870.                         var5 = new k(var6, var66, (w)null);
  871.                         int var74 = this.field_24.stringWidth(var54);
  872.                         if (var74 >= this.field_3 - this.field_21 && this.field_21 > 0) {
  873.                            this.method_22(this.field_24.getHeight() + 1);
  874.                         }
  875.  
  876.                         this.field_21 = this.method_18(var54, var5) + 1;
  877.                         this.field_18.addElement(var5);
  878.                         var5 = null;
  879.                         break;
  880.                      }
  881.  
  882.                      int var53 = -1;
  883.                      int var65 = 20;
  884.  
  885.                      try {
  886.                         String var72 = var3.b("maxlength");
  887.                         if (var72 != null) {
  888.                            var53 = Integer.parseInt(var72);
  889.                         }
  890.  
  891.                         String var78 = var3.b("size");
  892.                         if (var78 != null) {
  893.                            var65 = Integer.parseInt(var78);
  894.                         }
  895.                      } catch (NumberFormatException var34) {
  896.                      }
  897.  
  898.                      String var73 = var3.b("value");
  899.                      if (var73 == null) {
  900.                         var73 = "";
  901.                      }
  902.  
  903.                      this.method_17(var3.b("name"), var73, 1, var65, var53, "password".equals(var45) ? 65536 : 0, var6);
  904.                   } else if (var39.equals("select")) {
  905.                      var8 = new g(var3.b("name"), var3.b("multiple") != null);
  906.                   } else if (var39.equals("option")) {
  907.                      var9 = var3.b("value");
  908.                      var13 = var3.b("selected") != null;
  909.                   } else if (var39.equals("textarea")) {
  910.                      int var44 = 3;
  911.                      int var52 = 30;
  912.  
  913.                      try {
  914.                         String var64 = var3.b("rows");
  915.                         if (var64 != null) {
  916.                            var44 = Integer.parseInt(var64);
  917.                         }
  918.  
  919.                         String var71 = var3.b("cols");
  920.                         if (var71 != null) {
  921.                            var52 = Integer.parseInt(var71);
  922.                         }
  923.                      } catch (NumberFormatException var33) {
  924.                      }
  925.  
  926.                      var7 = this.method_17(var3.b("name"), (String)null, var44, var52, -1, 0, var6);
  927.                   } else if (var39.equals("tt")) {
  928.                      this.method_11();
  929.                   } else if (var39.equals("button")) {
  930.                      String var43 = var3.b("type");
  931.                      w var51 = null;
  932.                      if (var43 == null || var43.equals("submit")) {
  933.                         String var63 = var3.b("value");
  934.                         if (var63 == null) {
  935.                            var63 = "";
  936.                         }
  937.  
  938.                         var51 = new w(var3.b("name"), var63, false);
  939.                         if (var6 != null) {
  940.                            var6.a(var51);
  941.                         }
  942.                      }
  943.  
  944.                      var5 = new k(var6, var51, (w)null);
  945.                      if (this.field_21 > 0) {
  946.                         this.method_22(this.field_24.getHeight() + 1);
  947.                      }
  948.                   } else {
  949.                      if (!this.field_2 || !var39.equals("area")) {
  950.                         break;
  951.                      }
  952.  
  953.                      String var42 = var3.b("href");
  954.                      String var50 = var3.b("shape");
  955.                      byte var62 = -1;
  956.                      if (var50 != null && !var50.equals("rect")) {
  957.                         if (var50.equals("circle")) {
  958.                            var62 = 1;
  959.                         } else if (var50.equals("poly")) {
  960.                            var62 = 2;
  961.                         } else if (var50.equals("default")) {
  962.                            var62 = 4;
  963.                         }
  964.                      } else {
  965.                         var62 = 0;
  966.                      }
  967.  
  968.                      String var23 = var3.b("coords");
  969.                      int[] var24 = this.method_15(var23);
  970.                      b var25 = new b(var11, var42, var62, var24);
  971.                      if (var11 == null) {
  972.                         var11 = var25;
  973.                      }
  974.  
  975.                      if (var12 != null) {
  976.                         var12.a(var25);
  977.                      }
  978.  
  979.                      var12 = var25;
  980.                      var25.a(this.field_17.size());
  981.                      if (var42 != null) {
  982.                         this.field_18.addElement(var25);
  983.                      }
  984.                   }
  985.                   break;
  986.                case 3:
  987.                   String var38 = var3.d();
  988.                   if (var14) {
  989.                      if (var15 && var38.equals("title")) {
  990.                         var15 = false;
  991.                      } else if (var38.equals("head")) {
  992.                         var14 = false;
  993.                      }
  994.                   } else if (this.method_14(var38)) {
  995.                      if (var38.charAt(0) == 'h') {
  996.                         this.field_24 = this.field_5.al;
  997.                      } else if (!var38.equals("ul") && !var38.equals("ol")) {
  998.                         if (var38.equals("pre")) {
  999.                            this.method_21();
  1000.                            var16 = false;
  1001.                         } else if (var38.equals("address")) {
  1002.                            this.method_21();
  1003.                         }
  1004.                      } else if (var18 != null) {
  1005.                         try {
  1006.                            var17 = (Integer)var18.pop();
  1007.                         } catch (EmptyStackException var32) {
  1008.                         }
  1009.  
  1010.                         if (var18.empty()) {
  1011.                            var18 = null;
  1012.                         }
  1013.                      } else {
  1014.                         var17 = -1;
  1015.                      }
  1016.  
  1017.                      if (this.field_21 > 0) {
  1018.                         if (!var38.equals("br")) {
  1019.                            this.field_22 += this.field_24.getHeight() / 3;
  1020.                         }
  1021.  
  1022.                         this.method_22(this.field_24.getHeight());
  1023.                      }
  1024.                   } else if (var38.equals("a")) {
  1025.                      if (var4 != null) {
  1026.                         this.method_13(var4);
  1027.                         var4 = null;
  1028.                      }
  1029.                   } else {
  1030.                      if (!var38.equals("b") && !var38.equals("i") && !var38.equals("tt")) {
  1031.                         if (var38.equals("option")) {
  1032.                            if (var8 != null) {
  1033.                               if (var10 == null) {
  1034.                                  var10 = new String("");
  1035.                               }
  1036.  
  1037.                               var8.g().addElement(new r(var8, var10, var9 == null ? var10 : var9, var13));
  1038.                            }
  1039.  
  1040.                            var9 = null;
  1041.                            var10 = null;
  1042.                            continue;
  1043.                         }
  1044.  
  1045.                         if (!var38.equals("select")) {
  1046.                            if (var38.equals("textarea")) {
  1047.                               if (var7 != null) {
  1048.                                  if (var7.e() == null) {
  1049.                                     var7.a("");
  1050.                                  }
  1051.  
  1052.                                  var7 = null;
  1053.                               }
  1054.                            } else if (var38.equals("button")) {
  1055.                               if (var5 != null) {
  1056.                                  if (var5.b() > 0) {
  1057.                                     this.field_18.addElement(var5);
  1058.                                  }
  1059.  
  1060.                                  var5 = null;
  1061.                                  if (this.field_21 > 0) {
  1062.                                     this.method_22(this.field_24.getHeight());
  1063.                                  }
  1064.                               }
  1065.                            } else if (this.field_2 && var38.equals("map")) {
  1066.                               var11 = null;
  1067.                               var12 = null;
  1068.                            }
  1069.                            continue;
  1070.                         }
  1071.  
  1072.                         var8.g().trimToSize();
  1073.                         if (var6 != null) {
  1074.                            var6.a(var8);
  1075.                         }
  1076.  
  1077.                         this.field_18.addElement(new i(var8, this.field_17.size(), this.field_24));
  1078.                         int var40 = 0;
  1079.                         Enumeration var49 = var8.g().elements();
  1080.  
  1081.                         while(var49.hasMoreElements()) {
  1082.                            int var22 = this.field_24.stringWidth(((r)var49.nextElement()).a());
  1083.                            if (var22 > var40) {
  1084.                               var40 = var22;
  1085.                               if (var22 > this.field_3 - this.field_24.getHeight()) {
  1086.                                  var40 = this.field_3 - this.field_24.getHeight();
  1087.                                  break;
  1088.                               }
  1089.                            }
  1090.                         }
  1091.  
  1092.                         var40 += this.field_24.getHeight();
  1093.                         if (var40 > this.field_3 - this.field_21) {
  1094.                            this.method_22(this.field_24.getHeight() + 2);
  1095.                         } else {
  1096.                            this.method_25(this.field_24.getHeight() + 2);
  1097.                         }
  1098.  
  1099.                         this.field_17.addElement(new v(var8, this.field_21, this.method_23(this.field_24.getHeight()), var40, this.field_24.getHeight(), 0, (Font)null));
  1100.                         this.field_21 += var40 + 1;
  1101.                         var8 = null;
  1102.                         continue;
  1103.                      }
  1104.  
  1105.                      this.method_21();
  1106.                   }
  1107.                   break;
  1108.                case 4:
  1109.                   if (var14) {
  1110.                      if (var15) {
  1111.                         this.field_5.k = var3.a();
  1112.                      }
  1113.                   } else {
  1114.                      String var20 = var3.a();
  1115.                      if (var20 == null) {
  1116.                         var20 = "";
  1117.                      }
  1118.  
  1119.                      if (var8 != null) {
  1120.                         var10 = var20;
  1121.                      } else if (var7 != null) {
  1122.                         var7.a(var20);
  1123.                      } else {
  1124.                         if (this.field_21 <= 0 && !var16) {
  1125.                            int var21;
  1126.                            for(var21 = 0; var21 < var20.length() && var20.charAt(var21) <= ' '; ++var21) {
  1127.                            }
  1128.  
  1129.                            if (var21 > 0) {
  1130.                               var20 = var20.substring(var21);
  1131.                            }
  1132.                         }
  1133.  
  1134.                         this.method_18(var20, (e)(var4 != null ? var4 : var5));
  1135.                      }
  1136.                   }
  1137.             }
  1138.          }
  1139.       } finally {
  1140.          this.field_18.trimToSize();
  1141.          this.field_17.trimToSize();
  1142.       }
  1143.    }
  1144.  
  1145.    // $FF: renamed from: a () void
  1146.    private void method_11() {
  1147.       this.field_23.push(this.field_24);
  1148.       this.field_24 = Font.getFont(32, this.field_24.getStyle(), this.field_24.getSize());
  1149.    }
  1150.  
  1151.    // $FF: renamed from: c () void
  1152.    private void method_12() {
  1153.       this.field_23.push(this.field_24);
  1154.       this.field_24 = Font.getFont(this.field_24.getFace(), this.field_24.getStyle() | 2, this.field_24.getSize());
  1155.    }
  1156.  
  1157.    // $FF: renamed from: a (o) void
  1158.    private void method_13(o var1) {
  1159.       if (var1.b() > 0) {
  1160.          this.field_18.addElement(var1);
  1161.       }
  1162.  
  1163.       this.field_25 = 0;
  1164.       this.method_21();
  1165.    }
  1166.  
  1167.    // $FF: renamed from: d (java.lang.String) boolean
  1168.    private boolean method_14(String var1) {
  1169.       return "/p/br/div/form/center/li/ul/ol/h1/h2/h3/h4/h5/h6/blockquote/dt/dd/pre/address/".indexOf('/' + var1 + '/') != -1;
  1170.    }
  1171.  
  1172.    // $FF: renamed from: c (java.lang.String) int[]
  1173.    private int[] method_15(String var1) {
  1174.       if (var1 == null) {
  1175.          return null;
  1176.       } else {
  1177.          int var2 = 1;
  1178.  
  1179.          for(int var12 = 0; var12 < var1.length() && (var12 = var1.indexOf(44, var12)) != -1; ++var12) {
  1180.             ++var2;
  1181.          }
  1182.  
  1183.          int[] var4 = new int[var2];
  1184.          int var5 = 0;
  1185.  
  1186.          for(int var6 = 0; var5 < var2; ++var5) {
  1187.             int var7 = var1.indexOf(44, var6);
  1188.  
  1189.             try {
  1190.                Object var8 = null;
  1191.                String var13;
  1192.                if (var7 >= 0) {
  1193.                   var13 = var1.substring(var6, var7);
  1194.                } else {
  1195.                   var13 = var1.substring(var6);
  1196.                }
  1197.  
  1198.                var4[var5] = Integer.parseInt(var13);
  1199.             } catch (IndexOutOfBoundsException var10) {
  1200.                return null;
  1201.             } catch (NumberFormatException var11) {
  1202.                return null;
  1203.             }
  1204.  
  1205.             var6 = var7 + 1;
  1206.          }
  1207.  
  1208.          return var4;
  1209.       }
  1210.    }
  1211.  
  1212.    // $FF: renamed from: a (s, e) boolean
  1213.    private boolean method_16(s var1, e var2) {
  1214.       String var3 = var1.b("src");
  1215.       if (var3 != null) {
  1216.          try {
  1217.             int var4 = 0;
  1218.             int var5 = 0;
  1219.             String var6 = var1.b("width");
  1220.             if (var6 != null) {
  1221.                var4 = Integer.parseInt(var6);
  1222.             }
  1223.  
  1224.             String var7 = var1.b("height");
  1225.             if (var7 != null) {
  1226.                var5 = Integer.parseInt(var7);
  1227.             }
  1228.  
  1229.             if (var4 > 0 && var5 > 0) {
  1230.                var3 = var3 + '#' + var4 + ',' + var5;
  1231.                int var8 = 100;
  1232.                if (var4 > this.field_3) {
  1233.                   var8 = 100 * this.field_3 / var4;
  1234.                   var5 = this.field_3 * var5 / var4;
  1235.                   var4 = this.field_3;
  1236.                   if (var5 == 0) {
  1237.                      var5 = 1;
  1238.                   }
  1239.                }
  1240.  
  1241.                if (var4 > this.field_3 - this.field_21) {
  1242.                   this.method_22(var5 + 2);
  1243.                } else {
  1244.                   this.method_25(var5 + 2);
  1245.                }
  1246.  
  1247.                String var9 = var1.b("align");
  1248.                if (var9 != null) {
  1249.                   if (var9.equals("top")) {
  1250.                      this.method_26((byte)1);
  1251.                   } else if (var9.equals("middle")) {
  1252.                      this.method_26((byte)2);
  1253.                   } else {
  1254.                      this.method_26((byte)0);
  1255.                   }
  1256.                } else {
  1257.                   this.method_26((byte)0);
  1258.                }
  1259.  
  1260.                if (var2 != null) {
  1261.                   var2.b(var8);
  1262.                   var2.a(this.field_17.size());
  1263.                }
  1264.  
  1265.                ab var10 = new ab(this.field_5.i, var3, this.field_21, this.method_23(var5), var4, var5);
  1266.                this.field_17.addElement(var10);
  1267.                this.field_21 += var4 + 2;
  1268.                return true;
  1269.             }
  1270.          } catch (NumberFormatException var11) {
  1271.          }
  1272.       }
  1273.  
  1274.       return false;
  1275.    }
  1276.  
  1277.    // $FF: renamed from: a (java.lang.String, java.lang.String, int, int, int, int, x) w
  1278.    private w method_17(String var1, String var2, int var3, int var4, int var5, int var6, x var7) {
  1279.       if (this.field_21 > 0) {
  1280.          this.method_22(var3 * this.field_24.getHeight() + 2);
  1281.       } else {
  1282.          this.method_25(var3 * this.field_24.getHeight() + 2);
  1283.       }
  1284.  
  1285.       int var8 = var4 * this.field_24.charWidth(' ');
  1286.       if (var8 >= this.field_3) {
  1287.          var8 = this.field_3;
  1288.       }
  1289.  
  1290.       w var9 = new w(var1, var2, true);
  1291.       this.field_18.addElement(new z(var9, this.field_17.size(), var5, var6));
  1292.       this.field_17.addElement(new v(var9, this.field_21, this.field_22 + 1, var8, var3 * this.field_24.getHeight(), var6, this.field_24));
  1293.       if (var7 != null) {
  1294.          var7.a(var9);
  1295.       }
  1296.  
  1297.       this.field_21 += var8 + 1;
  1298.       if (this.field_5.l) {
  1299.          this.field_5.repaint(0, 0, this.field_3, this.field_4);
  1300.       }
  1301.  
  1302.       return var9;
  1303.    }
  1304.  
  1305.    // $FF: renamed from: a (java.lang.String, e) int
  1306.    private int method_18(String var1, e var2) {
  1307.       int var3 = var1.length();
  1308.       int var4 = 0;
  1309.       int var5 = 0;
  1310.       int var6 = 0;
  1311.       int var7 = this.field_21;
  1312.  
  1313.       while(var5 < var3) {
  1314.          int var8 = var1.indexOf(32, var5);
  1315.          if (var8 < 0) {
  1316.             var8 = var3;
  1317.          }
  1318.  
  1319.          if (var8 > 0) {
  1320.             int var9 = this.field_24.substringWidth(var1, var5, var8 - var5);
  1321.             if (var9 >= this.field_3 - this.field_21) {
  1322.                int var10 = var5 - 1;
  1323.                if (var6 == var5 && this.field_21 == 0) {
  1324.                   int var11 = 1;
  1325.  
  1326.                   while(true) {
  1327.                      Thread.yield();
  1328.                      if (this.field_13) {
  1329.                         return var4;
  1330.                      }
  1331.  
  1332.                      var9 = this.field_24.substringWidth(var1, var5, var8 - var5 - var11);
  1333.                      if (var9 <= this.field_3 - this.field_21) {
  1334.                         var5 = var10 = var8 - var11;
  1335.                         break;
  1336.                      }
  1337.  
  1338.                      ++var11;
  1339.                   }
  1340.                }
  1341.  
  1342.                if (var10 > var6) {
  1343.                   if (var2 != null) {
  1344.                      var2.a(this.field_17.size());
  1345.                   }
  1346.  
  1347.                   this.method_25(this.field_24.getHeight());
  1348.                   this.field_17.addElement(new j(var1.substring(var6, var10), var7, this.method_24(this.field_24.getHeight(), true), this.field_24, this.field_25));
  1349.                   if (this.field_21 + var9 > var4) {
  1350.                      var4 = this.field_21 + var9;
  1351.                   }
  1352.                }
  1353.  
  1354.                this.method_22(this.field_24.getHeight());
  1355.                var7 = 0;
  1356.                var6 = var5;
  1357.                continue;
  1358.             }
  1359.  
  1360.             if (var8 + 1 >= var3) {
  1361.                if (var2 != null) {
  1362.                   var2.a(this.field_17.size());
  1363.                }
  1364.  
  1365.                this.method_25(this.field_24.getHeight());
  1366.                this.field_17.addElement(new j(var1.substring(var6, var8), var7, this.method_24(this.field_24.getHeight(), true), this.field_24, this.field_25));
  1367.                this.field_21 += var9;
  1368.                if (this.field_21 > var4) {
  1369.                   var4 = this.field_21;
  1370.                }
  1371.             } else {
  1372.                this.field_21 += var9;
  1373.             }
  1374.          }
  1375.  
  1376.          if (var8 < var3) {
  1377.             this.field_21 += this.field_24.charWidth(' ');
  1378.          }
  1379.  
  1380.          var5 = var8 + 1;
  1381.       }
  1382.  
  1383.       if (this.field_5.l) {
  1384.          this.field_5.repaint(0, 0, this.field_3, this.field_4);
  1385.       }
  1386.  
  1387.       return var4;
  1388.    }
  1389.  
  1390.    // $FF: renamed from: a (java.io.InputStream, java.lang.String, int, boolean) void
  1391.    private void method_19(InputStream var1, String var2, int var3, boolean var4) throws IOException {
  1392.       if (var3 != 0) {
  1393.          Object var5 = null;
  1394.          byte[] var10;
  1395.          if (var3 > 0) {
  1396.             var10 = this.method_9(var1, var3, var4 ? 64 : -1);
  1397.          } else {
  1398.             ByteArrayOutputStream var6 = new ByteArrayOutputStream();
  1399.             byte[] var7 = new byte[256];
  1400.  
  1401.             while(true) {
  1402.                Thread.yield();
  1403.                if (this.field_13) {
  1404.                   return;
  1405.                }
  1406.  
  1407.                int var8 = var1.read(var7);
  1408.                if (var8 == -1) {
  1409.                   var10 = var6.toByteArray();
  1410.                   var6.close();
  1411.                   break;
  1412.                }
  1413.  
  1414.                var6.write(var7, 0, var8);
  1415.             }
  1416.          }
  1417.  
  1418.          if (var10 != null && var10.length > 0) {
  1419.             Thread.yield();
  1420.             if (this.field_13) {
  1421.                return;
  1422.             }
  1423.  
  1424.             try {
  1425.                Image var12 = Image.createImage(var10, 0, var10.length);
  1426.                Object var11 = null;
  1427.                Thread.yield();
  1428.                if (this.field_13) {
  1429.                   return;
  1430.                }
  1431.  
  1432.                if (this.field_5.i == null) {
  1433.                   this.field_5.i = new Hashtable();
  1434.                   this.field_5.y = var12.getHeight();
  1435.                   ab var13 = new ab(this.field_5.i, var2, 0, 0, var12.getWidth(), var12.getHeight());
  1436.                   this.field_17.addElement(var13);
  1437.                }
  1438.  
  1439.                this.field_5.i.put(var2, var12);
  1440.                this.field_5.repaint(0, 0, this.field_3, this.field_4);
  1441.             } catch (IllegalArgumentException var9) {
  1442.                if (this.field_5.i == null) {
  1443.                   throw var9;
  1444.                }
  1445.             }
  1446.          }
  1447.  
  1448.       }
  1449.    }
  1450.  
  1451.    // $FF: renamed from: a (java.lang.String, boolean) java.lang.String
  1452.    private final String method_20(String var1, boolean var2) {
  1453.       int var3 = var1.length();
  1454.       StringBuffer var4 = new StringBuffer(var3);
  1455.  
  1456.       for(int var5 = 0; var5 < var3; ++var5) {
  1457.          char var6 = var1.charAt(var5);
  1458.          switch (var6) {
  1459.             case '"':
  1460.                if (var2) {
  1461.                   var4.append(""");
  1462.                   break;
  1463.                }
  1464.             default:
  1465.                if (var6 > 127) {
  1466.                   var4.append("&#" + var6 + ';');
  1467.                } else {
  1468.                   var4.append(var6);
  1469.                }
  1470.                break;
  1471.             case '&':
  1472.                var4.append("&");
  1473.                break;
  1474.             case '<':
  1475.                var4.append("<");
  1476.                break;
  1477.             case '>':
  1478.                var4.append(">");
  1479.          }
  1480.       }
  1481.  
  1482.       return var4.toString();
  1483.    }
  1484.  
  1485.    // $FF: renamed from: b () void
  1486.    private void method_21() {
  1487.       try {
  1488.          this.field_24 = (Font)this.field_23.pop();
  1489.       } catch (EmptyStackException var2) {
  1490.       }
  1491.  
  1492.    }
  1493.  
  1494.    // $FF: renamed from: c (int) void
  1495.    private void method_22(int var1) {
  1496.       this.field_21 = 0;
  1497.       this.field_22 += this.field_26;
  1498.       this.field_26 = var1;
  1499.       this.field_27 = 0;
  1500.       this.field_5.y = this.field_22 + this.field_26;
  1501.    }
  1502.  
  1503.    // $FF: renamed from: a (int) int
  1504.    private int method_23(int var1) {
  1505.       return this.method_24(var1, false);
  1506.    }
  1507.  
  1508.    // $FF: renamed from: a (int, boolean) int
  1509.    private int method_24(int var1, boolean var2) {
  1510.       switch (this.field_27) {
  1511.          case 1:
  1512.             return this.field_22 + (var2 ? 0 : 1);
  1513.          case 2:
  1514.             return this.field_22 + this.field_26 / 2 - var1 / 2;
  1515.          default:
  1516.             return this.field_22 + this.field_26 - var1 - (var2 ? 0 : 1);
  1517.       }
  1518.    }
  1519.  
  1520.    // $FF: renamed from: b (int) void
  1521.    private void method_25(int var1) {
  1522.       if (var1 > this.field_26) {
  1523.          this.field_26 = var1;
  1524.          this.field_5.y = this.field_22 + this.field_26;
  1525.          if (this.field_21 > 0) {
  1526.             this.method_27();
  1527.          }
  1528.       }
  1529.  
  1530.    }
  1531.  
  1532.    // $FF: renamed from: a (byte) void
  1533.    private void method_26(byte var1) {
  1534.       if (this.field_27 != var1) {
  1535.          this.field_27 = var1;
  1536.          this.method_27();
  1537.       }
  1538.  
  1539.    }
  1540.  
  1541.    // $FF: renamed from: e () void
  1542.    private void method_27() {
  1543.       for(int var1 = this.field_17.size() - 1; var1 >= 0; --var1) {
  1544.          c var2 = (c)this.field_17.elementAt(var1);
  1545.          if (var2.e < this.field_22) {
  1546.             break;
  1547.          }
  1548.  
  1549.          var2.e = this.method_24(var2.b(), var2 instanceof j);
  1550.       }
  1551.  
  1552.    }
  1553. }
  1554.